libraries are reusable classes. eg : database, session, email, upload
libraries are loaded uisng library(), $this->load->library('database');
yes, we can create custom libraries in application/libraries